﻿#include "StdAfx.h"
#include "sdl_sub.h"
sdl_sub::sdl_sub()
{
	this->height = 0; //윈도우 세로
	this->width = 0; //윈도우 가로
	this->bit = 0;  //스크린 비트
	this->title = "test_sdl"; //윈도우 이름
	this->screen = NULL; //기본 스크린

	this->flag_init = false; //sdl 초기화 

}

sdl_sub::~sdl_sub(void)
{
	//초기화에 성공하여 종료되는 경우 --항상 그런 경우일듯 싶지만.
	if(this->flag_init == true)
		SDL_Quit();
}
bool sdl_sub::init(std::string title, int height,int width,int bit)
{
	// Start SDL
	if(SDL_Init( SDL_INIT_EVERYTHING ) == -1)
		return e_msg("SDL 초기화 실패:",SDL_GetError());

	this->height = height; //윈도우 세로
	this->width = width; //윈도우 가로
	this->bit = bit;  //스크린 비트
	this->title = title; //윈도우 이름

	// 비디오 모드 초기화!
	this->screen = SDL_SetVideoMode(width, height, bit, SDL_HWSURFACE|SDL_ASYNCBLIT|SDL_RLEACCEL);
	if(screen == NULL) 
		return e_msg("Video 초기화 실패:",SDL_GetError());

	//Set the window caption 
	//아이콘 관련 코드 추가 필요함 두번째 인자
	SDL_WM_SetCaption(title.c_str(), NULL);

	//초기화 성공 플래그
	return this->flag_init = true;
}

bool sdl_sub::e_msg(std::string msg, std::string error_code)
{
	std::cout<<msg<<" : "<<error_code<<"endl";
	exit(0);
	return false;
}


bool sdl_sub::view()
{
	if(SDL_Flip(this->screen) == -1) 
		return e_msg("view 실패:",SDL_GetError());
	else
		return true;
}

